Page({
  data: {
    complaints: [], // 投诉列表
    page: 1, // 当前页
    pageSize: 10, // 每页条数
    hasMore: true, // 是否还有更多数据
    // 产品筛选相关
    productList: [], // 产品列表
    selectedProductId: '', // 选中的产品ID，空字符串表示所有产品
    showProductFilter: false, // 是否显示产品筛选器
  },


  onLoad() {
    const userId = wx.getStorageSync('openId');
    this.fetchProductList(); // 获取产品列表
    this.loadComplaints(userId);
  },

  // 加载投诉列表
  loadComplaints(userId) {
    if (!this.data.hasMore) return;

    wx.cloud.callFunction({
      name: 'xiaoBangCommonFunction',
      data: {
        getComplaintListRequest: {
          page: this.data.page,
          pageSize: this.data.pageSize,
          userId: userId,
          productId: this.data.selectedProductId || undefined // 添加产品筛选
        }
      }
    }).then(res => {
      const { code, data } = res.result;
      if (code === 200) {
        const newComplaints = data.complaints;
        this.setData({
          complaints: [...this.data.complaints, ...newComplaints],
          page: this.data.page + 1,
          hasMore: newComplaints.length === this.data.pageSize
        });
      } else {
        wx.showToast({ title: '加载失败', icon: 'none' });
      }
    }).catch(err => {
      console.error('加载投诉信息失败：', err);
    });
  },

  // 下拉加载更多
  onReachBottom() {
    this.loadComplaints();
  },

  // 获取产品列表
  async fetchProductList() {
    try {
      const schoolCode = wx.getStorageSync('selectedAddress')?.addressCode;
      console.log('获取产品列表，学校代码:', schoolCode);
      
      const res = await wx.cloud.callFunction({
        name: 'xiaoBangCommonFunction',
        data: {
          getProductListRequest: {
            schoolCode: schoolCode
          }
        }
      });

      console.log('获取产品列表响应:', res.result);

      if (res.result && res.result.code === 200) {
        this.setData({
          productList: res.result.data.products || []
        });
        console.log('产品列表设置成功:', res.result.data.products);
      } else {
        console.error('获取产品列表失败:', res.result?.message || '未知错误');
        // 设置一个默认的产品列表，以防云函数调用失败
        this.setData({
          productList: [
            { productId: 'PPacakgePickUp', productTitle: '代取快递' },
            { productId: 'PWashShoes', productTitle: '洗鞋' },
            { productId: 'PWashClothes', productTitle: '洗衣' },
            { productId: 'PPaoTui', productTitle: '跑腿' },
            { productId: 'PPrintBlackAndWhite', productTitle: '黑白打印' }
          ]
        });
      }
    } catch (error) {
      console.error('获取产品列表失败:', error);
      // 设置一个默认的产品列表，以防云函数调用失败
      this.setData({
        productList: [
          { productId: 'PPacakgePickUp', productTitle: '代取快递' },
          { productId: 'PWashShoes', productTitle: '洗鞋' },
          { productId: 'PWashClothes', productTitle: '洗衣' },
          { productId: 'PPaoTui', productTitle: '跑腿' },
          { productId: 'PPrintBlackAndWhite', productTitle: '黑白打印' }
        ]
      });
    }
  },

  // 切换产品筛选器显示状态
  toggleProductFilter() {
    this.setData({
      showProductFilter: !this.data.showProductFilter
    });
  },

  // 选择产品筛选
  selectProduct(e) {
    const { productId } = e.currentTarget.dataset;
    this.setData({
      selectedProductId: productId,
      showProductFilter: false,
      page: 1, // 重置页码
      complaints: [], // 清空当前投诉列表
      hasMore: true // 重置加载更多状态
    });
    
    // 重新获取数据
    const userId = wx.getStorageSync('openId');
    this.loadComplaints(userId);
  },

  // 获取产品名称
  getProductName(productId) {
    if (!productId) return '所有产品';
    const product = this.data.productList.find(p => p.productId === productId);
    return product ? product.productTitle : '未知产品';
  }
});